#pragma once

#include <Ogre.h>
#include <map>

#define USERDATA_DIR		"../userdata/"
#define RESOURCE_DIR		"../res/"

#define TEXT_FILE_NAME		RESOURCE_DIR"text.cfg"
#define PLUGIN_FILE_NAME	RESOURCE_DIR"plugin.cfg"
#define RES_FILE_NAME		RESOURCE_DIR"resources.cfg"

#define CONFIG_FILE_NAME	USERDATA_DIR"setting.cfg"
#define CONFIG_BAKFILE_NAME	USERDATA_DIR"settingbak.cfg"
#define LOG_FILE_NAME		USERDATA_DIR"fay.log"
#define RANK_FILE_NAME		USERDATA_DIR"rank.cfg"

#define HIT_FX_FILE_NAME	RESOURCE_DIR"sound/fx/click.wav"
#define MSG_FX_FILE_NAME	RESOURCE_DIR"sound/fx/energy.wav"
#define WATER_FX_FILE_NAME	RESOURCE_DIR"sound/fx/water.wav"
#define BOMB_FX_FILE_NAME	RESOURCE_DIR"sound/fx/bomb.wav"

#define ENG1_FX_FILE_NAME	RESOURCE_DIR"sound/fx/engine_low.wav"
#define ENG2_FX_FILE_NAME	RESOURCE_DIR"sound/fx/engine_mid.wav"
#define ENG3_FX_FILE_NAME	RESOURCE_DIR"sound/fx/engine_high.wav"

#define MENU_MUS_FILE_NAME	RESOURCE_DIR"sound/music/menu.ogg"
#define GAME_MUS_FILE_NAME	RESOURCE_DIR"sound/music/game.ogg"
#define WAIT_MUS_FILE_NAME	RESOURCE_DIR"sound/music/wait.mp3"

#define CARRIER_FILE_NAME	"carrier.mesh"
#define FIGHTER_FILE_NAME	"fighter.mesh"


class TextMap
{
private:
	std::map<Ogre::String, Ogre::String> data;
	Ogre::String language;

public:
	TextMap();
	void init();
	Ogre::String get(Ogre::String key);
	void insert(Ogre::String key, Ogre::String value);
};

wchar_t* ANSIToUnicode(const char* str);
int generateAllFontTextures();